package com.wiz.web.service;

import com.wiz.web.vo.WxModelMessageVO;
import com.wiz.web.vo.criteria.AccountChargeHistoryCriteria;
import com.wiz.web.vo.criteria.FuellingOrderCriteria;
import com.wiz.web.vo.criteria.HqStationCriteria;
import com.wiz.web.vo.to.AccountChargeHistoryTO;

/**
 * 所有关于金额的转换，都在此接口中定义
 * @author Hakeny
 */
public interface AccountService extends BasicService {

	/**
	 * 加油订单上传后续处理 事务开启
	 * @param criteria
	 * @throws Exception
	 */
	public WxModelMessageVO handlerOrder(FuellingOrderCriteria criteria) throws Exception;
	
	/**
	 * 积分兑换
	 * @return
	 * @throws Exception
	 */
	public WxModelMessageVO exchangePoint(HqStationCriteria criteria) throws Exception;
	
	/**
	 * 客户端充值
	 * @param chargeCriteria
	 * @throws Exception
	 */
	public AccountChargeHistoryTO chargeAmountByClient(AccountChargeHistoryCriteria chargeCriteria) throws Exception;
	
	/**
	 * 微信充值
	 * @param hqId
	 * @param openId
	 * @param chargeAmount
	 * @return
	 * @throws Exception
	 */
	public AccountChargeHistoryTO chargeAmountByWx(String hqId, String openId, Double chargeAmount, 
			String refId) throws Exception;
	
	/**
	 * 余额支付
	 * @param amountType
	 * @param amountTypeName
	 * @param refId
	 * @param amount
	 * @param memberId
	 * @return
	 * @throws Exception
	 */
	public String balancePay(int amountType,String amountTypeName,String refId,
			double amount,String memberId,String hqId) throws Exception;
}
